package design.mode.proxy.dynamicProxy;

/**
 * 动态代理模式演示<br/>
 * <p>
 * jdk自带工具类针对的是接口代理
 */
public class Main {

    public static void main(String[] args) {
//        System.getProperties().setProperty("sun.misc.ProxyGenerator.saveGeneratedFiles", "true");
        Cat cat = new Cat();
        Object proxyInstance = ProxyUtil.getProxyInstance(cat);
        IAnimal animal = (IAnimal) proxyInstance;
        animal.action();
        System.out.println("==============================================");
        System.out.println("===============这是一条华丽的分割线===============");
        System.out.println("==============================================");
        animal.breath();


        System.out.println("==============================================");
        System.out.println("===============这是一条华丽的分割线===============");
        System.out.println("==============================================");

        Dog dog = new Dog();
        proxyInstance = ProxyUtil.getProxyInstance(dog);
        animal = (IAnimal) proxyInstance;
        animal.action();
        System.out.println("==============================================");
        System.out.println("===============这是一条华丽的分割线===============");
        System.out.println("==============================================");
        animal.breath();
    }
}
